マップチップとの当たり判定

マップチップとの当たり判定 - 当たり判定を大きくする

マップチップとの当たり判定では、プレイヤーの中心部分にマップチップがあれば「衝突している」と判定していますが、プレイヤーの大きさを考慮してもう少し広い範囲に当たり判定を設けるには、次のようにします。

Playerに、当たり判定専用のメソッドを作成します。

Player(一部)

\hitToChip(x,y) {
//(x,y)の位置から上下左右10ピクセルの場所のうち、どれかがマップチップに触れていればtrue
    return $map.getOnAt(x-10,y)>-1 ||
    $map.getOnAt(x+10,y)>-1 ||
    $map.getOnAt(x,y+10)>-1 ||
    $map.getOnAt(x,y-10)>-1;
}

$map.getOnAtを呼び出している部分も変更します。

Main(一部)

    if(hitToChip(x,y)){
        //マップチップにぶつかっていたら、移動前の座標に戻す
        x=sx;y=sy;
    }

参考